Software Defined Networking (SDN) is an approach to computer networking that allows network administrators to manage network services through abstraction of lower-level functionality. This is done by decoupling the system that makes decisions about where traffic is sent (the control plane) from the underlying systems that forward traffic to the selected destination (the data plane). In such a system, a network controller, which is typically deployed as a cluster of server nodes, has the role of the control plane and is coupled to one or more network elements that have the role of the data plane. Each network elements being implemented on one or multiple network devices. The network controller communicates with the network elements using a SDN protocol. For implementing SDN, the Open Networking Foundation (ONF), an industrial consortium focusing on commercializing SDN and its underlying technologies, has defined a set of open commands, functions, and protocols. The defined protocol suites are known as the OpenFlow (OF) protocol. The network controller, acting as the control plane, may then program the data plane on the network elements by causing packet handling rules to be installed on the forwarding network elements using OF commands and messages. These packet handling rules may have criteria to match various packet types as well as actions that may be performed on those packets. For example, the network controller may program the network elements to forward packets with a specific destination address a certain way in the network.
In such a deployment environment, there will be instances where the connectivity between the control plane and the data plane gets disrupted. The disruption of the connectivity may be due to various reasons (e.g., one of the control-plane nodes restarted or crashed, one of the data-plane forwarding network elements restarted, intermittent/transient network issues in the control plane—data plane connectivity, an application restarting on the control plane, etc.).
These disruption scenarios require resynchronization of the forwarding states of the control plane with the forwarding states at the forwarding network elements to ensure proper recovery of the network system from the disconnection.